﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ForrajeriaBCL;
using ForrajeriaDB;
using System.Data;
namespace Forrajeria
{
    public partial class Informes : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

            if (!Page.IsPostBack)
            {
                ((Label)this.Master.FindControl("lblTitulo")).Text = "Informe Pedidos";
                panelCliente.Visible = false;
                panelProveedor.Visible = false;
            }
        }

        protected void btnBuscarPedido_Click(object sender, EventArgs e)
        {
            string estado = ddlEstadoPedido.SelectedValue;
            DateTime desde = DateTime.Parse(txtFechaDesdePedido.Text);
            DateTime hasta = DateTime.Parse(txtFechaHastaPedido.Text);
            
            


            if (ddlTipoPedido.SelectedValue == "Cliente")
            {
                buscarPedidoCliente(estado,desde,hasta);
                cargaPanelCliente();
                lblDetCli.Visible = false;
                gvDetPedCliente.Visible = false;
            }
            else 
            {
                buscarPedidoProveedor(estado,desde,hasta);
                cargaPanelProveedor();
            }
        }

        private void cargaPanelProveedor()
        {
            panelProveedor.Visible = true;
            panelCliente.Visible = false;
        }

        private void cargaPanelCliente()
        {
            panelCliente.Visible = true;
            panelProveedor.Visible = false;
        }

        private void buscarPedidoProveedor(string estado, DateTime desde, DateTime hasta)
        {
            PedidoProveedorBCL ped = new PedidoProveedorBCL();
            List<PedidoMO> lista = ped.buscarPedidos(estado, desde, hasta);
            gvPedidoProveedor.DataSource = null;
            gvPedidoProveedor.DataSource = lista;
            gvPedidoProveedor.DataBind();
            gvPedidoProveedor.SelectedIndex = -1;
        }

        private void buscarPedidoCliente(string estado, DateTime desde, DateTime hasta)
        {
            PedidoClienteBCL pedido = new PedidoClienteBCL();
           
            List<PedidoClienteMO> lista = pedido.buscarPedidos(estado, desde, hasta);
            gvPedidoCliente.DataSource = null;
            gvPedidoCliente.DataSource = lista;
            gvPedidoCliente.DataBind();
            gvPedidoCliente.SelectedIndex = -1;
        }

        protected void gvPedidoCliente_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
        {
            int ind = e.NewSelectedIndex;
            if (ind != -1)
            {
                PedidoClienteBCL pedido = new PedidoClienteBCL();
                DataTable dt = pedido.obtenerDetalle(int.Parse(gvPedidoCliente.Rows[ind].Cells[1].Text));
               
                gvDetPedCliente.DataSource = dt;
                gvDetPedCliente.DataBind();
                gvDetPedCliente.Visible = true;
                lblDetCli.Visible = true;
                
            }
        }

        protected void gvPedidoProveedor_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
        {
            int ind = e.NewSelectedIndex;
            if (ind != -1)
            {
                
                PedidoProveedorBCL ped = new PedidoProveedorBCL();
                DataTable dt = ped.obtenerDetalle(int.Parse(gvPedidoProveedor.Rows[ind].Cells[1].Text));


                gvDetallePedProveedor.DataSource = dt;
                gvDetallePedProveedor.DataBind();
                gvDetallePedProveedor.Visible = true;
                lblDetPedidoResu.Visible = true;
                
            }
        }
    }
}